从数组显示图像

您所在的位置:网站首页 matlab 导出图片 大片黑色 从数组显示图像

从数组显示图像

2024-05-03 03:44| 来源: 网络整理| 查看: 265

图像颜色数据,指定为下列形式之一:

向量或矩阵 - 此格式定义索引图像数据。C 的每个元素定义图像的 1 个像素的颜色。例如,C = [1 2 3; 4 5 6; 7 8 9];。C 的元素映射到相关联的坐标区的颜色图中的颜色。CDataMapping 属性控制映射方法。

由 RGB 三元组组成的三维数组 - 此格式定义使用 RGB 三元值的真彩色图像数据。每个 RGB 三元组定义图像的 1 个像素的颜色。RGB 三元组是三元素向量,指定颜色的红、绿和蓝分量的强度。三维数组的第一页包含红色分量,第二页包含绿色分量,第三页包含蓝色分量。由于图像使用真彩色代替颜色图的颜色,因此 CDataMapping 没有任何作用。

如果 C 为 double 类型,则 RGB 三元值 [0 0 0] 和 [1 1 1] 分别对应于黑色和白色。

如果 C 为整数类型,则该图像使用完整范围的数据确定颜色。例如,如果 C 为类型 uint8,则 [0 0 0] 和 [255 255 255] 分别对应于黑色和白色。如果 CData 为类型 int8,则 [-128 -128 -128] 和 [127 127 127] 分别对应于黑色和白色。

如果 C 为类型 logical,则 [0 0 0] 和 [1 1 1] 分别对应于黑色和白色。

下图演示了两种颜色模型的 C 的相对维度。

NaN 元素的行为未定义。

要改用 image 函数的低级版本,请将 CData 属性设为名称-值对组。例如,image('CData',C)。

在 double 和整数数据类型之间转换

如果您使用向量或二维矩阵调用 image 函数并使用默认的 CDataMapping 值,则在 double 值和整数类型之间转换时,必须将数据值偏移 1。当 CDataMapping 设置为 'scaled' 时,此偏移不是必需的。

例如,如果 U8 包含 uint8 类型的索引图像数据,您可以使用以下语法将其转换为 double 类型:

D = double(U8) + 1;

要将索引图像数据从 double 类型转换为整数类型,请减去 1 并使用 round 确保所有值都为整数。例如,如果 D 包含 double 类型的索引图像数据,则使用以下语法将其转换为 uint8:

U8 = uint8(round(D - 1)); 在归一化的 double 和真彩色值之间转换

要将真彩色图像数据从整数类型转换为 double 类型,请重新缩放数据。例如,如果 RGB8 为 uint8 类型的真彩色图像数据,则使用以下语法将其转换为 double:

RGB = double(RGB8)/255;

要将真彩色图像数据从 double 类型转换为整数类型,请重新缩放数据并使用 round 确保所有值都为整数。例如,如果 RGB 为 double 类型的图像数据,则使用以下语法将其转换为 uint8:

RGB8 = uint8(round(RGB*255));

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3